package h0716;

import java.util.Arrays;
import java.util.Scanner;

/**
  * @description TODO 田忌赛马
  * @author 不知名帅哥
  * @date 2024/7/16 23:27
  * @version 1.0
*/
public class TianjiHorseRacing {
    static int[] a;
    static int[] b;
    static int maxBiggerCount=0;
    static int ans=0;
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        a= Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        b=Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        
        //求解a的全排列
        dfs(0,new boolean[a.length],0);
        System.out.println(ans);
    }

    private static void dfs(int level, boolean[] used, int biggerCount) {
        if (level>=a.length){
            if (biggerCount>maxBiggerCount){
                maxBiggerCount=biggerCount;
                ans=1;
            }else if (biggerCount==maxBiggerCount){
                ans++;
            }
            return;
        }
        for (int i = 0; i < a.length; i++) {
            if (used[i]) continue;
            used[i]=true;
            //biggerCount记录当前全排列中a[level]>b[level]的位置的数量，此时a[level]==a[i]
            dfs(level+1,used,biggerCount+(a[i]>b[level]?1:0));
            used[i]=false;
        }
    }
    //回溯法通用框架
    //void backtrack(当前状态, 其他参数) {
    //    if (满足结束条件) {
    //        处理当前结果;
    //        return;
    //    }
    //
    //    for (所有可能的选择) {
    //        做出选择;
    //        backtrack(更新后的状态, 其他参数);
    //        撤销选择; // 回溯
    //    }
    //}
}
